In a video compression stream, an inter frame is a frame generally expressed in terms of one or more neighboring frames. The Inter frame prediction is a kind of prediction that tries to take advantage from temporal redundancy between neighboring frames allowing to achieve higher compression rates.
An inter coded frame is divided into blocks known as macroblocks. After that, instead of directly encoding the raw pixel values for each block, the encoder will try to find a block similar to the one it is encoding on a previously encoded frame, referred to as a reference frame. This process is done by a block matching algorithm. If the encoder succeeds on its search, the block could be encoded by a vector, known as motion vector, which points to the position of the matching block at the reference frame. The process of motion vector determination is called motion estimation.
In most cases the encoder will succeed, but the block found is likely not an exact match to the block it is encoding. The encoder will compute the differences between block found and the block it is encoding. The residual values are known as the prediction error and need to be transformed and sent to the decoder. If the encoder succeeds in finding a matching block on a reference frame, it will obtain a motion vector pointing to the matched block and a prediction error. Using both elements, the decoder will be able to recover the raw pixels of the block.
H.264, also referred to as Moving Picture Experts Group (MPEG)-4 Part 10 and Advanced Video Coding (AVC) is a video compression standard that is resilient to poor network conditions and more economical with its use of bandwidth, while providing good video quality. In this standard, a video stream is first split into single-image frames, and then sliced into 16×16 pixel macroblocks. The 16×16 macroblocks may be split further in different block sizes, for example, 8×8, 16×8, 4×4, etc. Predictions are then made on macroblocks for reducing the number of bits to represent the macroblocks. The H.264 standard defines multiple prediction modes for making coding mode decisions.
Conventional H.264 encoders evaluate all the prediction modes to find a best match and decide on the best prediction mode. Evaluating all prediction modes for determining the best prediction mode increases computational complexity.
A need therefore exists for a system and method for reducing computational complexity in determining the best prediction mode, thereby overcoming the drawbacks of the systems discussed above and also several other shortcomings inherent to the existing prior art.